package cn.lh.service.impl;

import cn.lh.exception.GlobalCustomException;
import cn.lh.service.IVerifyService;
import cn.lh.util.StrUtils;
import cn.lh.util.VerifyCodeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.concurrent.TimeUnit;

@Service
public class VerifyServiceImpl implements IVerifyService {
    @Autowired
    RedisTemplate redisTemplate;

    @Override
    public String getImgCode(String key) {
        if (key == null) {
            throw new GlobalCustomException("图片验证码key值不能为空");
        }
        // 生成长度为4的验证码
        String code = StrUtils.getComplexRandomString(4);
        // 将前端传来的key和验证码存入redis数据库，过期时间为3分钟
        redisTemplate.opsForValue().set(key, code, 3L, TimeUnit.MINUTES);
        // 生成验证码图片(长为100px,宽为40px,内容为code)，并使用Base64将图片编码成字符串
        return VerifyCodeUtils.verifyCode(100, 40, code);
    }
}
